﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Web7.Logging
{
	public class NullLoggerFactory : LoggerFactory
	{
		public override ILogger CreateLogger(Type type)
		{
			return NullLogger.Instance;
		}
	}

	public class NullLogger : ILogger
	{

		public static NullLogger Instance { 
			get { return _instance; }
		}
		private static NullLogger _instance = new NullLogger();
	
		public bool IsEnabled(OperationProcessLevel level)
		{
			return false;
		}

		public void Log(Exception exception)
		{
			
		}

		public void Log(Exception exception, OperationProcessLevel level)
		{
			
		}

		public void Log(string message, Exception exception, OperationProcessLevel level)
		{
			
		}

		public void Log(string message)
		{
			
		}

		public void Log(string message, OperationProcessLevel level)
		{
			
		}

		public void Log(Func<string> messageGetter)
		{
			
		}

		public void Log(Func<string> messageGetter, OperationProcessLevel level)
		{
			
		}

		public void LogFormat(string format, params object[] args)
		{
			
		}

		public void LogFormat(OperationProcessLevel level, string format, params object[] args)
		{
			
		}
	}

}
